/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package ged;

import org.eclipse.emf.common.util.EList;

import org.eclipse.emf.ecore.EObject;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Diagram</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link ged.Diagram#getLayout <em>Layout</em>}</li>
 *   <li>{@link ged.Diagram#getNodes <em>Nodes</em>}</li>
 *   <li>{@link ged.Diagram#getLinks <em>Links</em>}</li>
 *   <li>{@link ged.Diagram#getColors <em>Colors</em>}</li>
 *   <li>{@link ged.Diagram#getMargin <em>Margin</em>}</li>
 *   <li>{@link ged.Diagram#getIn_margin <em>In margin</em>}</li>
 *   <li>{@link ged.Diagram#getWidth <em>Width</em>}</li>
 *   <li>{@link ged.Diagram#getFonts <em>Fonts</em>}</li>
 *   <li>{@link ged.Diagram#getL_attr <em>Lattr</em>}</li>
 * </ul>
 * </p>
 *
 * @see ged.GedPackage#getDiagram()
 * @model annotation="gmf.diagram foo='bar'"
 * @generated
 */
public interface Diagram extends Node
{
  /**
   * Returns the value of the '<em><b>Layout</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <p>
   * If the meaning of the '<em>Layout</em>' attribute isn't clear,
   * there really should be more of a description here...
   * </p>
   * <!-- end-user-doc -->
   * @return the value of the '<em>Layout</em>' attribute.
   * @see #setLayout(String)
   * @see ged.GedPackage#getDiagram_Layout()
   * @model
   * @generated
   */
  String getLayout();

  /**
   * Sets the value of the '{@link ged.Diagram#getLayout <em>Layout</em>}' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @param value the new value of the '<em>Layout</em>' attribute.
   * @see #getLayout()
   * @generated
   */
  void setLayout(String value);

  /**
   * Returns the value of the '<em><b>Nodes</b></em>' containment reference list.
   * The list contents are of type {@link ged.Node}.
   * <!-- begin-user-doc -->
   * <p>
   * If the meaning of the '<em>Nodes</em>' containment reference list isn't clear,
   * there really should be more of a description here...
   * </p>
   * <!-- end-user-doc -->
   * @return the value of the '<em>Nodes</em>' containment reference list.
   * @see ged.GedPackage#getDiagram_Nodes()
   * @model containment="true"
   * @generated
   */
  EList<Node> getNodes();

  /**
   * Returns the value of the '<em><b>Links</b></em>' containment reference list.
   * The list contents are of type {@link ged.Link}.
   * <!-- begin-user-doc -->
   * <p>
   * If the meaning of the '<em>Links</em>' containment reference list isn't clear,
   * there really should be more of a description here...
   * </p>
   * <!-- end-user-doc -->
   * @return the value of the '<em>Links</em>' containment reference list.
   * @see ged.GedPackage#getDiagram_Links()
   * @model containment="true"
   * @generated
   */
  EList<Link> getLinks();

  /**
   * Returns the value of the '<em><b>Colors</b></em>' containment reference list.
   * The list contents are of type {@link ged.Color}.
   * <!-- begin-user-doc -->
   * <p>
   * If the meaning of the '<em>Colors</em>' containment reference list isn't clear,
   * there really should be more of a description here...
   * </p>
   * <!-- end-user-doc -->
   * @return the value of the '<em>Colors</em>' containment reference list.
   * @see ged.GedPackage#getDiagram_Colors()
   * @model containment="true"
   * @generated
   */
  EList<Color> getColors();

  /**
   * Returns the value of the '<em><b>Margin</b></em>' containment reference list.
   * The list contents are of type {@link ged.BorderMargin}.
   * <!-- begin-user-doc -->
   * <p>
   * If the meaning of the '<em>Margin</em>' containment reference list isn't clear,
   * there really should be more of a description here...
   * </p>
   * <!-- end-user-doc -->
   * @return the value of the '<em>Margin</em>' containment reference list.
   * @see ged.GedPackage#getDiagram_Margin()
   * @model containment="true"
   * @generated
   */
  EList<BorderMargin> getMargin();

  /**
   * Returns the value of the '<em><b>In margin</b></em>' containment reference list.
   * The list contents are of type {@link ged.BorderInnerMargin}.
   * <!-- begin-user-doc -->
   * <p>
   * If the meaning of the '<em>In margin</em>' containment reference list isn't clear,
   * there really should be more of a description here...
   * </p>
   * <!-- end-user-doc -->
   * @return the value of the '<em>In margin</em>' containment reference list.
   * @see ged.GedPackage#getDiagram_In_margin()
   * @model containment="true"
   * @generated
   */
  EList<BorderInnerMargin> getIn_margin();

  /**
   * Returns the value of the '<em><b>Width</b></em>' containment reference list.
   * The list contents are of type {@link ged.LineWidth}.
   * <!-- begin-user-doc -->
   * <p>
   * If the meaning of the '<em>Width</em>' containment reference list isn't clear,
   * there really should be more of a description here...
   * </p>
   * <!-- end-user-doc -->
   * @return the value of the '<em>Width</em>' containment reference list.
   * @see ged.GedPackage#getDiagram_Width()
   * @model containment="true"
   * @generated
   */
  EList<LineWidth> getWidth();

  /**
   * Returns the value of the '<em><b>Fonts</b></em>' containment reference list.
   * The list contents are of type {@link ged.Font}.
   * <!-- begin-user-doc -->
   * <p>
   * If the meaning of the '<em>Fonts</em>' containment reference list isn't clear,
   * there really should be more of a description here...
   * </p>
   * <!-- end-user-doc -->
   * @return the value of the '<em>Fonts</em>' containment reference list.
   * @see ged.GedPackage#getDiagram_Fonts()
   * @model containment="true"
   * @generated
   */
  EList<Font> getFonts();

  /**
   * Returns the value of the '<em><b>Lattr</b></em>' containment reference list.
   * The list contents are of type {@link ged.Label_attributes}.
   * <!-- begin-user-doc -->
   * <p>
   * If the meaning of the '<em>Lattr</em>' containment reference list isn't clear,
   * there really should be more of a description here...
   * </p>
   * <!-- end-user-doc -->
   * @return the value of the '<em>Lattr</em>' containment reference list.
   * @see ged.GedPackage#getDiagram_L_attr()
   * @model containment="true"
   * @generated
   */
  EList<Label_attributes> getL_attr();

} // Diagram
